파이썬의 print 명령을 사용해 문자열을 출력해 보세요. 문자열은 홑따옴표나 겹따옴표를 둘러싸서 만들 수 있습니다.
In [ ]:
pirnt()
코드에서 # 문자 뒤의 텍스트는 주석으로 간주되어 프로그램 실행에서 제외됩니다. print 명령을 사용해서 다른 문자열을 출력하고 이 문장을 설명하는 주석을 추가해 보세요.
In [ ]:
print() #
파이썬의 변수는 미리 선언할 필요가 없으며 값이 지정될 때 생성됩니다.
변수 이름은 영문자와 숫자, _ 로 구성할 수 있습니다. 파이썬 커뮤니티에서는 변수 이름을 영소문자로 만들도록 권장하고 있습니다. 임의의 변수 이름을 하나 만들어 숫자를 변수에 할당해 보세요.
i = 10
In [ ]:
숫자는 정수외에도 실수를 사용할 수 있습니다. 임의의 실수 하나를 다른 변수에 할당하세요. 그리고 나서 위에서 만든 변수와 함께 print 명령으로 값을 출력해 보세요.
f = 10.0
In [ ]:
파이썬의 문자열도 변수에 저장할 수 있습니다. 영문자는 물론 한글 같은 유니코드 문자를 저장하는데 아무런 문제가 없습니다. 영어와 한글 문자열을 각각 저장하는 변수를 만들어 보세요. 그리고 만든 변수를 print 명령으로 출력해 보세요.
str = 'Hello World'
만약 문자열 사이에 홑따옴표가 들어갈 때에는 겹따옴표로 문자열을 만들고 그 반대도 마찬가지 입니다. 만약 홑따옴표, 겹따옴표가 모두 들어간 문자열이 있다면 어떻게 할까요? 아래 예를 참고해 보세요.
str = "I can't fly"
str = 'She said "Don\'t do that'
In [ ]:
위에서 만든 문자열 변수 두개를 하나의 print 명령으로 출력해 보세요. 두 변수를 콤마로 구분했을 때와 + 연산자로 연결하여 출력했을 때 차이를 확인해 보세요.
print(str1, str1)
print(str1+str2)
In [ ]:
문자열 변수와 숫자 변수를 하나의 print 명령으로 출력해 보세요. 위에서처럼 문자열 변수와 숫자 변수를 + 연산자로 연결하여 출력할 수 있나요?
print(str+i)
In [ ]:
파이썬은 변수 이름에 변수의 타입을 지정하는 것을 권장하지 않습니다. 하나의 변수에 문자열을 넣었다가 숫자로 바꿀 수 있습니다. 변수에 어떤 값이 들어 있는지 확인하려면 type 명령을 사용하면 됩니다. 위에서 만든 변수들의 타입을 확인해 보세요.
In [ ]:
type()
리스트(list)는 배열 같은 파이썬의 데이터 타입니다. 하나의 변수에 여러개의 원소를 담을 수 있습니다. 빈 리스트를 하나 만들고 append() 메소드로 몇가지 값을 추가해 보세요.
teams = []
teams.append()
In [ ]:
로우 레벨 언어와는 달리 파이썬에서는 배열에 여러 종류의 값을 담을 수 있습니다. 숫자와 문자열을 섞어서 리스트에 값을 추가해 보세요. 그리고 추가된 리스트를 print 명령으로 출력해 보세요.
In [ ]:
len 명령은 리스트의 길이를 리턴해 줍니다. len 명령으로 위에서 만든 리스트의 길이를 구한 뒤 다른 변수에 저장하고 이를 출력해 보세요.
In [ ]:
len 명령을 문자열 변수에 적용해 보세요. 어떤 값이 얻어지나요?
In [ ]:
대부분의 언어에서처럼 파이썬에서도 리스트를 숫자 인덱스로 개개의 요소를 접근할 수 있습니다. 숫자 인덱스는 0 에서부터 시작하며 (리스트의 길이-1) 에서 끝납니다. 인덱스로 리스트의 요소 하나를 출력해 보세요. 또 인덱스로 리스트의 요소 하나 값을 바꾸어 보세요.
print(teams[1])
teams[1] = 10
In [ ]:
리스트의 요소를 하나씩 선택할 수 있지만 여러개씩 한꺼번에 선택할 수 있습니다. 이를 슬라이스(slice)라고 합니다. 슬라이스된 결과는 새로운 리스트가 됩니다. 슬라이스는 시작인덱스:끝인덱스 와 같은 스타일로 지정합니다.
teams[0:2]
슬라이스된 리스트에는 시작인덱스의 요소는 포함되지만 끝인덱스의 요소는 포함되지 않습니다. 리스트의 슬라이스를 만들어서 출력해 보세요. 리스트의 원소가 작으면 append 메소드로 요소를 여러개 추가하고 슬라이스를 사용해 보세요.
In [ ]:
문자열에서 글자 하나 하나를 리스트처럼 인덱스로 접근할 수 있습니다. 또 리스트와 같이 슬라이스를 사용해 문자열의 일부를 얻을 수 있습니다.
str[3:5]
In [ ]:
리스트와 문자열 인덱스에서 음수를 사용하면 맨 뒤에서부터 거꾸로 헤아리게 됩니다. 음수 인덱스를 사용하여 리스트와 문자열의 요소를 선택해 보세요. 음수로 슬라이스를 적용해 보세요. 결과를 확인하려면 print 명령으로 출력하면 됩니다.
str[-3]
str[-5:-2]
In [ ]:
슬라이스 중 한쪽의 인덱스가 없으면 끝까지 모두 선택하는 것을 의미합니다.
str[3:]
str[:-2]
만약 양쪽에 모두 인덱스가 없으면 문자열 전체를 나타냅니다. 또 리스트도 이와 동일합니다. 리스트에도 적용해 보세요.
str[:]
In [ ]:
덧셈(+), 뺄셈(-), 나눗셈(/), 몫(//), 제곱(**), 나머지(%) 연산자를 사용하여 임의의 수식을 계산해 보세요. 파이썬의 나눗셈은 제수와 피제수에 상관없이 항상 실수를 리턴합니다. 따라서 결과를 정수로 받고 싶다면 몫 연산자를 사용해야 합니다.
sum = 1 + 2 + 3
remainder = 10 % 3
In [ ]:
파이썬의 주요 제어문으로는 if, for, while 이 있습니다. 우리는 여기에서 if, for 를 다루겠습니다.
파이썬은 코드 블럭에 중괄호를 사용하지 않습니다. 대신 들여 쓰기로 코드의 블럭을 구분합니다. 들여 쓰기 공백의 수는 일관되게 유지하는 것이 좋으며 보통 4개의 들여쓰기를 권장합니다.
if 문은 조건절과 콜론(:)으로 구성되며 조건절이 참일 경우에 들여써진 블럭의 코드를 실행합니다.
if i == 0:
print('test ok')
Ipython 노트북에서는 자동으로 들여쓰기가 됩니다.
age = 10 란 변수가 있을 때 age 가 20보다 작을 경우 'Young Man' 이란 문자열을 출력하는 if 문을 작성해 보세요.
In [ ]:
age = 10
if 문의 조건절에는 문자열을 이용해 비교할 수도 있습니다.
str1 변수의 값이 'Hello World' 일 때 'Hello' 와 'Earth' 문자열을 사용해 새로운 문자열을 만들어 보세요.
str1 = '...'
if str1 == '...':
str2 = str1[] + 'Earth'
In [ ]:
조건에 해당하지 않는 경우에 실행할 코드 블럭은 else 아래에 놓습니다.
if i > 10:
print(i)
else:
print(i*10)
위 if 예를 확장하여 str1 이 'Hello World' 가 아닐 경우에 str1 에 'Hello World'를 대입하는 if 문을 만들어 보세요.
In [ ]:
if 문 안에 또 다른 if 문을 중첩해서 놓을 수 있습니다.
if ~:
if ~:
...
else:
...
하지만 논리구조를 단순하게 하려면 if 조건을 동일 수준에서 재 검사할 수 있는 elif 를 사용하는 것이 좋습니다.
if ~:
...
elif ~:
...
else:
...
elif 언어마다 조금씩 다르게 표기되므로(elseif, else if, elsif) 혼돈이 쉽습니다. 주의하세요.
ticket 리스트에 어린이, 청소년, 성인의 표를 넣고 if~elif~else 로 age를 구분하여 visitor에 티켓의 값을 할당하는 문장을 만들어 보세요.
ticket = [...]
age = ...
if ~:
visitor = ...
elif ~:
visitor = ...
else:
visitor = ...
print(visitor)
In [ ]:
파이썬에서 자주 사용되는 연산자로 in 이 있습니다. in 은 리스트 내에 어떤 원소가 있다면 참을 없다면 거짓을 리턴합니다. if 문에서 in 을 사용하면 논리적으로 자연스러운 구문을 만들 수 있습니다.
if 'child' in ticket:
print('어린이 표가 있습니다')
ticket 변수에 어린이, 청소년, 성인 표가 모두 있는지 if~elif~else 구문에 in 연산자를 적용해 검증해 보세요.
In [ ]:
for 는 파이썬에서 주로 사용되는 반복문입니다. 반복문은 변수의 내용이 모두 사용될 때까지 하위 코드블럭을 반복해 실행하기 위해 사용됩니다. for 반복문은 in 연산자와 함께 사용됩니다. if 와 마찬가지로 하위 코드 블럭의 들여쓰기는 모두 같아야 하며 콜론(:)으로 for 문의 끝을 알립니다.
for name in teams:
print(name)
위에서 만든 리스트 중 하나를 선택해서 반복문을 사용해 리스트의 원소를 프린트해 보세요.
In [ ]:
range 함수는 연속된 숫자를 생성할 때 사용됩니다. range 함수에 하나의 숫자를 넣으면 숫자의 끝이 도달하기 전까지 숫자를 반복합니다.
range(5) --> 0, 1, 2, 3, 4
range 함수에 두개의 숫자를 넣으면 첫번째 숫자 부터 시작해서 두번째 숫자가 끝나기 전까지 반복합니다.
range(1, 5) --> 1, 2, 3, 4
range() 함수를 사용해 임의의 숫자 범위를 만들어 보세요. print 명령을 사용해서 출력이 되나요?
In [ ]:
range() 함수로 생성된 숫자를 사용하려면 for ~ in 구문과 함께 사용해야 합니다.
for i in range(5):
print(i)
임의의 range 영역을 지정해서 for 문으로 출력해 보세요.
In [ ]:
for 와 range, if 문 등을 사용해서 2의 배수일 때는 '2의 배수'라고 출력하고 3의 배수일 때는 '3의 배수'라고 출력하고 그 외에는 아무것도 출력하지 않는 코드를 작성해 보세요.
for i in range(10):
if ~:
...
elif ~:
...
In [ ]:
딕셔너리는 리스트와 유사하지만 인덱스가 숫자가 아니고 임의의 숫자 또는 문자열인 리스트입니다. 보통 다른 언어에서는 해시, 맵 등으로도 많이 불립니다.
stat = {'sonny': 11, 'kane': 19}
리스트는 값을 나열하면 순서대로 인덱스가 지정되지만 딕셔너리는 키를 명시적으로 지정해 주어야 하며 값과는 콜론(:)으로 구분하여 나열합니다. key:value, key:value
딕셔너리는 리스트와 구분하기 위해 중괄호{}를 사용하여 초기화하지만 딕셔너리의 원소를 참조할 때는 리스트와 같이 대괄호[]를 사용합니다.
stat['sonny']
한 사람에 대한 정보를 담은 딕셔너리를 만들어 보세요. 딕셔너리의 키는 나이, 성별, 키, 이름, 국적 등이 될 수 있습니다.
In [ ]:
리스트와 딕셔너리는 모두 값의 종류에 제한이 없습니다. 따라서 리스트 안에 리스트, 리스트 안에 딕셔너리 등이 가능합니다.
stat = {'sonny': 11, 'kane': 19, 'total': {'goal': 29}}
위 예에서 stat['total']은 딕셔너리를 값으로 가지고 있습니다.
어린이에 대한 정보를 담은 딕셔너리를 만들어 보세요. 딕셔너리의 키는 위에서 만든 것과 유사합니다. 그리고 위에서 만든 딕셔너린의 'child' 키에 할당해 보세요.
adult['child'] = child
adult 변수를 출력해서 확인해 보세요. 주피터 노트북에서는 print 명령을 쓰지 않아도 마지막 문장의 결과를 자동으로 출력해 줍니다.
In [ ]:
위에서 만든 어린이에 대한 딕셔너리를 이용해서 for ~ in 문에 적용해 보세요. 어떤 값이 출력되나요?
for k in child:
print(k)
In [ ]:
딕셔너리를 for ~ in 문에 적용하면 딕셔너리의 키가 하나씩 선택되어 전달됩니다. 전달된 딕셔너리의 키를 이용하여 딕셔너리 원소의 값을 출력해 보세요.
for k in child:
print(...)
In [ ]:
딕셔너리의 items 메소드는 딕셔너리에 담긴 키와 값을 쌍으로 묶어 전달합니다. for ~ in 문에 적용하면 키와 값을 편하게 출력할 수 있습니다. 이 때 두개의 값이 전달되므로 변수 두개를 for 문에 지정해야 합니다.
for k, v in child.items():
print(k, v)
위에서 만든 딕셔너리 중 하나를 선택해 items() 메소드를 사용해 키와 값을 출력해 보세요.
In [ ]:
del() 함수는 리스트나 딕셔너리의 원소를 삭제할 수도 있고 전체 변수를 통채로 삭제할 수 있습니다. 리스트나 딕셔너리 중 일부를 삭제하고 len() 함수로 크기의 변화를 확인해 보세요.
a = 1
del(a)
del(teams[0])
len(temas)
del(child['age'])
len(child)
In [ ]:
파이썬은 많은 내장 모듈과 서드파티 라이브러리를 가지고 있습니다. 이런 패키지들을 사용하려면 import 명령으로 불러들여야 합니다. 다른 언어에서의 include, require 등과 유사합니다. 수학 패키지를 임포트하여 2의 제곱근을 구해 보세요.
import math
math.sqrt(2)
In [ ]:
수고하셨습니다! ^^